package cn.inno.controller;

import cn.inno.entitys.ErrorMsg;
import cn.inno.exceptions.BusinessException;
import cn.inno.util.BaseUtil;
import net.sf.json.JSONObject;

/**
 * 基础控制层
 */
public class BaseController extends BaseUtil {

    /**
     * 输出Json数据，正常返回使用
     */
    protected String writeJson(JSONObject json) {
        // 输出
        try {
            if (json != null && json.toString() != null && !"{}".equals(json.toString())) {
                return json.toString();
            } else {
                json = new JSONObject();
                json.put(ErrorMsg.KEY_CODE, ErrorMsg.CALL_FAIL);
                json.put(ErrorMsg.KEY_MESSAGE, ErrorMsg.MESSAGE_NOT);
                return json.toString();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 输出Json数据,出异常的时候使用
     */
    protected String writeExceptionJson(JSONObject json, Exception exception) {
        // 输出
        try {
            if (json == null) {
                json = new JSONObject();
            }
            json.put(ErrorMsg.KEY_CODE, ErrorMsg.CALL_FAIL);

            if (exception instanceof BusinessException) {
                json.put(ErrorMsg.KEY_MESSAGE, exception.getMessage());
            } else {
                json.put(ErrorMsg.KEY_MESSAGE, ErrorMsg.MESSAGE_ERROR);
            }

            exception.printStackTrace();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return json.toString();
    }

}
